
import {SET_TODO,SET_TODO_LIST,REMOVE_TODO,SET_TODO_STATUS,SET_TODO_DOING} from './actionType';
import {IState,ITodo,TODO_STATUS} from '@/typings';

export default{
	[SET_TODO](state:IState,todo:ITodo):void{
		//头插
		// state.list.unshift(todo);如果不重新赋值给state.list,watch将失效
		state.list = [todo,...state.list];
	},
	[SET_TODO_LIST](state:IState,todoList:ITodo[]):void{
		state.list = todoList;
	},
	[REMOVE_TODO](state:IState,id:number):void{
		state.list = state.list.filter((item:ITodo)=> item.id !== id)
	},
	[SET_TODO_STATUS](state:IState,id:number):void{
		state.list = state.list.map((item:ITodo)=> {
			if(item.id === id)
			{
				switch(item.status){
					case TODO_STATUS.FINISHED:
					item.status = TODO_STATUS.WILLDO;
					break;
					case TODO_STATUS.DOING:
					case TODO_STATUS.WILLDO:
					item.status = TODO_STATUS.FINISHED;
					break;
					default:
					break;
					
				}
			}
			return item;
		})
	},
	[SET_TODO_DOING](state:IState,id:number):void{
		state.list = state.list.map((item:ITodo)=> {
			if(item.id === id)
			{
				switch(item.status){
					case TODO_STATUS.WILLDO:
					item.status = TODO_STATUS.DOING;
					break;
					case TODO_STATUS.DOING:
					item.status = TODO_STATUS.WILLDO;
					break;
					default:
					break;
					
				}
			}
			return item;
		})
	},
}
